package com.linkgie.galaxyframework.domain.data;

import com.linkgie.galaxyframework.metadata.StandardType;

/**
 * 类型的字段；
 * 
 * @author huanghaiquan
 *
 */
public interface ClassFieldDefinition {

	/**
	 * 字段的 key；
	 * 
	 * @return
	 */
	String getKey();

	/**
	 * 字段的名称；
	 * 
	 * @return
	 */
	String getName();

	/**
	 * 字段值的类型；
	 * 
	 * @return
	 */
	StandardType getValueType();

	boolean isIterable();

	/**
	 * 内容类型表达式；
	 * 
	 * @return
	 */
	String getContentTypeExpression();

	/**
	 * 枚举类型的 URI；
	 * 
	 * @return
	 */
	String getEnumUri();

	boolean isReadonly();

	int getOrder();

	boolean isRequired();

	String getDefaultValue();

}